Analysis date: 2023-01-03
CRC_Xenografts_FirstBatch_DataProcessing Script
#set.seed(2022)
load("../Data/Cache/Xenografts_Batch1_DataProcessing.RData")
source("../../../General/Code/Analysis_Functions.R")
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.5
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.3 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::collapse() masks IRanges::collapse()
## ✖ dplyr::combine() masks Biobase::combine(), BiocGenerics::combine()
## ✖ dplyr::count() masks matrixStats::count()
## ✖ dplyr::desc() masks IRanges::desc()
## ✖ tidyr::expand() masks S4Vectors::expand()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::first() masks S4Vectors::first()
## ✖ dplyr::lag() masks stats::lag()
## ✖ purrr::map() masks kohonen::map()
## ✖ ggplot2::Position() masks BiocGenerics::Position(), base::Position()
## ✖ purrr::reduce() masks GenomicRanges::reduce(), IRanges::reduce()
## ✖ dplyr::rename() masks S4Vectors::rename()
## ✖ dplyr::select() masks AnnotationDbi::select()
## ✖ dplyr::slice() masks IRanges::slice()
source("CRC_Xenografts_Batch1_Functions.R")
Train_SOM <- function(phos_mat, try.k){
## define a grid for the SOM and train
grid.size <- ceiling(nrow(phos_mat ) ^ (1/2.5))
som.grid <- somgrid(xdim = grid.size, ydim = grid.size, topo = 'hexagonal', toroidal = T)
som.model <- som(data.matrix(phos_mat ), grid = som.grid)
## extract some data to make it easier to use
som.events <- som.model$codes[[1]]
#som.events.colors <- rgb(som.events[,1], som.events[,2], som.events[,3], maxColorValue = 255)
som.dist <- as.matrix(dist(som.events))
plot(som.model, type = 'mapping', cex=0.2)
plot(som.model, type="changes")
plot(som.model, type = 'count')
plot(som.model, type="dist.neighbours")
# plot(som.model, type="codes")
# dev.off()
#plot(som.model, type = "property", property = som.model$codes[,4], main=names(som.model$data)[4]#, palette.name=coolBlueHotRed
#try.k <- 2:100
cluster.dist.eval <- as.data.frame(matrix(ncol = 3, nrow = (length(try.k))))
colnames(cluster.dist.eval) <- c('k', 'kmeans', 'hclust')
for(i in 1:length(try.k)) {
cluster.dist.eval[i, 'k'] <- try.k[i]
cluster.dist.eval[i, 'kmeans'] <- Cluster_Mean_Dist(kmeans(som.events, centers = try.k[i], iter.max = 20)$cluster, som.dist = som.dist)
cluster.dist.eval[i, 'hclust'] <- Cluster_Mean_Dist(cutree(hclust(vegan::vegdist(som.events)), k = try.k[i]), som.dist = som.dist)
}
plot(cluster.dist.eval[, 'kmeans'] ~ try.k,
type = 'l')
lines(cluster.dist.eval[, 'hclust'] ~ try.k,
col = 'red')
legend('topright',
legend = c('k-means', 'hierarchical'),
col = c('black', 'red'),
lty = c(1, 1))
return(list( som.model, som.events ))
}
## Define a function to calculate mean distance within each cluster. This
## is roughly analogous to the within clusters ss approach
Cluster_Mean_Dist <- function(clusters, som.dist){
cluster.means = c()
for(c in unique(clusters)){
temp.members <- which(clusters == c)
if(length(temp.members) > 1){
temp.dist <- som.dist[temp.members,]
temp.dist <- temp.dist[,temp.members]
cluster.means <- append(cluster.means, mean(temp.dist))
}else(cluster.means <- 0)
}
return(mean(cluster.means))
}
Plot_Colored_SOM <- function(som.model, clusters, type = "mapping", cl = 40){
plot(som.model,
type = type,
pchs = 21,
cex=0.2,
col = "black",
#bg = c("blue" , "red", "yellow", "green")[as.factor(str_remove(str_split( rownames(som.model$data[[1]]), "-", simplify = T )[,1], "log2FC_")) ] ,
keepMargins = F,
bgcol = c(RColorBrewer::brewer.pal(12, "Set3"), RColorBrewer::brewer.pal(9, "Set1"), RColorBrewer::brewer.pal(8, "Set2"), RColorBrewer::brewer.pal(9, "Pastel1"), RColorBrewer::brewer.pal(8, "Dark2"))[clusters] )
add.cluster.boundaries(som.model, clusters)
}
Asign_To_Clusters <- function(som.model, clusters){
cluster_classification <- som.model$unit.classif
names(cluster_classification) <- rownames(som.model$data[[1]])
classification <- clusters[cluster_classification]
names(classification) <- rownames(som.model$data[[1]])
classification
}
Get_Members_Of_One_Cluster <- function(som.model, clusters, n){
message(paste("Cluster" , n ))
asign <- Asign_To_Clusters(som.model, clusters)
names(asign[asign == n])
}
Get_Mat_With_Assigned_Clusters <- function(som.model, clusters, phos_mat ){
som.cluster.asignedclusters <- Asign_To_Clusters(som.model = som.model,
clusters = clusters)
phos_mat_t <- as.data.frame( t(phos_mat) )
phos_mat_t$cluster <- som.cluster.asignedclusters[rownames(phos_mat_t)]
phos_mat_t <- phos_mat_t %>%
rownames_to_column( "peptide") %>%
pivot_longer(-c(peptide, cluster), names_to = "sample", values_to = "log2FC") %>%
mutate(sample = gsub( "log2FC_", "", sample)) %>%
separate( sample , into = c("xenograft", "treatment", "day", "replicate", "set"), sep = "_", remove = F) %>%
separate(peptide, into = c("HGNC_Symbol", "Annotated_Sequence"), sep = "_", remove = F ) %>%
mutate(treatment = as.factor(treatment))
return(phos_mat_t)
}
Plot_Profiles_SOM_clusters <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
phos_mat_t <- phos_mat_t
mean_per_type <-
phos_mat_t %>%
group_by(sample, treatment) %>%
summarise(log2FC= median(log2FC)) %>%
ungroup() %>%
group_by(treatment) %>%
summarise(mean_log2FC = mean(log2FC)) %>%
ungroup() %>%
column_to_rownames("treatment") %>%
t %>% as_tibble()
if(specific_cluster){
phos_mat_t <- phos_mat_t %>%
filter(cluster==specific_cluster)
}
phos_mat_t %>%
filter(!is.na(cluster)) %>%
#filter(cluster==19) %>%
ggplot(aes( sample, log2FC, fill = treatment, group = peptide )) +
geom_line(alpha = 0.3) +
theme_bw() +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank()) +
scale_color_manual(values = PGPalette[c(5,1,2,4)]) +
facet_wrap(~cluster, ncol = ncol_grid) +
geom_hline(col = PGPalette[5], yintercept = mean_per_type$ctrl) +
geom_hline(col = PGPalette[1], yintercept = mean_per_type$E) +
geom_hline(col = PGPalette[2], yintercept = mean_per_type$EC) +
geom_hline(col = PGPalette[4], yintercept = mean_per_type$EBC) +
geom_point(alpha = 0.3, aes(col = treatment), size = 0.4)
}
Plot_Profiles_SOM_Clusters_Splitbyprep <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
phos_mat_t <- phos_mat_t
if(specific_cluster){
phos_mat_t <- phos_mat_t %>%
filter(cluster==specific_cluster)
}
phos_mat_t %>%
filter(!is.na(cluster)) %>%
#filter(cluster==19) %>%
mutate(prep = unlist(prep_l[sample]),
treatment = as.factor(treatment) ) %>%
mutate(treatment = factor(treatment, levels = c("ctrl", "E", "EC", "EBC"))) %>%
group_by(treatment, prep, sample, cluster) %>%
summarise(log2FC= mean(log2FC)) %>%
ungroup() %>%
ggplot(aes( treatment, log2FC, fill = treatment )) +
geom_boxplot(outlier.size = 0) +
theme_bw() +
scale_fill_manual(values = PGPalette[c(5,1,2,4)]) +
facet_wrap(~cluster+prep) +
ggpubr::stat_compare_means() +
ggbeeswarm::geom_beeswarm()
}
Plot_Profiles_SOM_clusters_prep <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
phos_mat_t <- phos_mat_t
if(specific_cluster){
phos_mat_t <- phos_mat_t %>%
filter(cluster==specific_cluster)
}
phos_mat_t %>%
filter(!is.na(cluster)) %>%
#filter(cluster==19) %>%
mutate(prep = unlist(prep_l[sample]) ) %>%
ggplot(aes( sample, log2FC, fill = prep, group = peptide )) +
geom_line(alpha = 0.3) +
theme_bw() +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank()) +
scale_color_manual(values = PGPalette[c(5,1,2,4)]) +
facet_wrap(~cluster, ncol = ncol_grid) +
geom_point(alpha = 0.3, aes(col = prep), size = 0.4)
}
Plot_Profiles_SOM_clusters_prep_sorted_by_prep <- function(som.model, clusters, phos_mat, ncol_grid=4, specific_cluster = FALSE ){
phos_mat_t <- Get_Mat_With_Assigned_Clusters(som.model, clusters, phos_mat)
phos_mat_t <- phos_mat_t
if(specific_cluster){
phos_mat_t <- phos_mat_t %>%
filter(cluster==specific_cluster)
}
phos_mat_t <- phos_mat_t %>%
filter(!is.na(cluster)) %>%
#filter(cluster==19) %>%
mutate(prep = unlist(prep_l[sample]) )
order_prep <- phos_mat_t %>%
arrange( prep, treatment, day ) %>%
.$sample
phos_mat_t %>%
mutate(sample = as.factor(sample)) %>%
mutate(sample = factor(sample, levels = unique(order_prep)) ) %>%
ggplot(aes( sample, log2FC, fill = prep, group = peptide )) +
geom_line(alpha = 0.3) +
theme_bw() +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank()) +
scale_color_manual(values = PGPalette[c(5,1,2,4)]) +
facet_wrap(~cluster, ncol = ncol_grid) +
geom_point(alpha = 0.3, aes(col = prep), size = 0.4)
}
Confusion_Matrix <- function(cluster){
as.data.frame(Asign_To_Clusters(som.model.pat, cluster) ) %>%
rownames_to_column("sample") %>%
separate(sample, sep = "_", into = c("log2FC", "xenograft", "treatment", "day", "replicate", "set" ) ) %>%
select(-day, -set, -xenograft, -log2FC, -replicate) %>%
table
}
Confusion_Matrix_Prep <- function(cluster){
as.data.frame(Asign_To_Clusters(som.model.pat, cluster) ) %>%
rownames_to_column("sample") %>%
mutate(prep = unlist( prep_l[ gsub("log2FC_", "", sample)]) ) %>%
separate(sample, sep = "_", into = c("log2FC", "xenograft", "treatment", "day", "replicate", "set" ) ) %>%
select(-day, -set, -xenograft, -log2FC, -replicate, -treatment) %>%
table
}
Plot_StringDB <- function(hits){
hits <- as.data.frame(hits)
colnames(hits) <- "HGNC_Symbol"
hits_mapped <- string_db$map( hits, "HGNC_Symbol", removeUnmappedRows = TRUE )
string_db$plot_network( hits_mapped)
}
som.pept.pY <- Train_SOM(phos_mat= t(pY_mat_normtomedian), try.k = 2:50)
som.model.pept.pY <- som.pept.pY[[1]]
som.events.pept.pY <- som.pept.pY[[2]]
## Having selected a reasonable value for k, evaluate different clustering algorithms.
## Try several different clustering algorithms, and, if desired, different values for k
cluster.tries.pept.pY <- list()
for(k in c(13,19, 29, 31)){
## k-means clustering
som.cluster.k <- kmeans(som.events.pept.pY, centers = k, iter.max = 100, nstart = 10)$cluster # k-means
## hierarchical clustering
som.dist.pept <- dist(som.events.pept.pY) # hierarchical, step 1
#som.cluster.h <- cutree(hclust(som.dist.pept), k = k) # hierarchical, step 2
## capture outputs
cluster.tries.pept.pY[[paste0('som.cluster.k.', k)]] <- som.cluster.k
#cluster.tries.pept.pY[[paste0('som.cluster.h.', k)]] <- som.cluster.h
}
## Take a look at the various clusters. You're looking for the algorithm that produces the
## least fragmented clusters.
message("k13")
## k13
Plot_Colored_SOM(som.model.pept.pY,
cluster.tries.pept.pY$som.cluster.k.13, cl = 13)
message("k19")
## k19
Plot_Colored_SOM(som.model.pept.pY,
cluster.tries.pept.pY$som.cluster.k.19, cl = 19)
message("k29")
## k29
Plot_Colored_SOM(som.model.pept.pY,
cluster.tries.pept.pY$som.cluster.k.29, cl = 29)
message("k31")
## k31
Plot_Colored_SOM(som.model.pept.pY,
cluster.tries.pept.pY$som.cluster.k.31, cl = 31)
#cluster.tries.pept.pY$som.cluster.k.20
message("Members in each cluster (k13):")
## Members in each cluster (k13):
sort(table(Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.k.13)))
##
## 7 3 11 8 12 13 1 9 2 5 10 4 6
## 2 3 3 4 8 8 10 10 11 11 17 18 50
message("Members in each cluster (k29):")
## Members in each cluster (k29):
sort(table(Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.k.29)))
##
## 13 14 1 4 6 9 19 23 25 11 17 27 5 15 16 18 22 2 3 7 12 29 21 26 10 24
## 1 1 2 2 2 2 2 2 2 3 3 3 4 4 4 4 4 5 5 5 6 6 7 7 9 10
## 20 28 8
## 13 18 19
t(pY_mat_normtomedian) %>%
as.data.frame( ) %>%
rownames_to_column( "peptide") %>%
pivot_longer(-peptide, names_to = "sample", values_to = "log2FC") %>%
mutate(sample = gsub( "log2FC_", "", sample)) %>%
separate( sample , into = c("xenograft", "treatment", "day", "replicate", "set"), sep = "_", remove = F) %>%
separate(peptide, into = c("HGNC_Symbol", "Annotated_Sequence"), sep = "_", remove = F ) %>%
group_by(sample, treatment, day, set, replicate) %>%
summarise("Mean of cluster" = mean(log2FC)) %>%
ungroup() %>%
mutate(treatment = as.factor(treatment)) %>%
ggplot(aes( treatment, `Mean of cluster`, fill = treatment )) +
geom_boxplot(outlier.size = 0) +
theme_bw() +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank()) +
scale_fill_manual(values = PGPalette[c(5,1,2,4)]) +
ggbeeswarm::geom_beeswarm() +
ggpubr::stat_compare_means()
## `summarise()` has grouped output by 'sample', 'treatment', 'day', 'set'. You
## can override using the `.groups` argument.
Plot_Profiles_SOM_clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian)
## `summarise()` has grouped output by 'sample'. You can override using the
## `.groups` argument.
Plot_Profiles_SOM_clusters_prep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian)
Plot_Profiles_SOM_clusters_prep_sorted_by_prep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian)
Plot_Profiles_SOM_Clusters_Splitbyprep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian)
## `summarise()` has grouped output by 'treatment', 'prep', 'sample'. You can
## override using the `.groups` argument.
Plot_Profiles_SOM_Clusters_Splitbyprep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian,
specific_cluster = 1)
## `summarise()` has grouped output by 'treatment', 'prep', 'sample'. You can
## override using the `.groups` argument.
Get_Mat_With_Assigned_Clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian) %>%
select(HGNC_Symbol, Annotated_Sequence, cluster) %>%
unique
## # A tibble: 155 × 3
## HGNC_Symbol Annotated_Sequence cluster
## <chr> <chr> <int>
## 1 RPSA ADHQPLTEASyVNLPTIALCNTDSPLR 2
## 2 PKP3 ADyDTLSLR 4
## 3 ANXA2 AEDGSVIDyELIDQDAR 6
## 4 ANKRD39 AEDPSQPDSAGyTALHYASR 4
## 5 LYN AEERPTFDYLQSVLDDFyTATEGQYQQQP 1
## 6 PKM AEGSDVANAVLDGADCIMLSGETAKGDyPLEAVR 6
## 7 SRC AGPLAGGVTTFVALyDYESR 10
## 8 MYH9 ALELDSNLyR 10
## 9 LAMTOR1 ALNGAEPNyHSLPSAR 4
## 10 NCOA4 ANEPCTSFAECVCDENCEKEALyK 13
## # … with 145 more rows
Get_Mat_With_Assigned_Clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian) %>%
filter(cluster==3) %>%
select(HGNC_Symbol, Annotated_Sequence) %>%
unique
## # A tibble: 3 × 2
## HGNC_Symbol Annotated_Sequence
## <chr> <chr>
## 1 TLN2 ECDySIDGINR
## 2 CILK1 SKPPYtDyVSTR
## 3 HIPK3 TVCSTyLQSR
Get_Mat_With_Assigned_Clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian) %>%
filter(cluster==5) %>%
select(HGNC_Symbol, Annotated_Sequence) %>%
unique
## # A tibble: 11 × 2
## HGNC_Symbol Annotated_Sequence
## <chr> <chr>
## 1 PFN1 CyEMASHLR
## 2 MAPK13 HADAEMTGyVVTR
## 3 ATG101 HEyLPK
## 4 MAPK14 HTDDEMTGyVATR
## 5 DDR1 NLyAGDyYR
## 6 DDR1 NLYAGDyYR
## 7 MAPK12 QADSEMTGyVVTR
## 8 BRK1 RIEyIEAR
## 9 VCL SFLDSGyR
## 10 EPHA2 VLEDDPEATyTTSGGK
## 11 PTK2 YMEDSTyYK
Get_Mat_With_Assigned_Clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.13,
phos_mat = pY_mat_normtomedian) %>%
select(HGNC_Symbol, Annotated_Sequence, cluster) %>%
unique %>%
write.table(quote = FALSE, row.names = FALSE, col.names = TRUE, file = "../Data/ForCollaborators/Xenografts_Batch1_k13pY.txt")
Plot_Profiles_SOM_clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.19,
phos_mat = pY_mat_normtomedian)
## `summarise()` has grouped output by 'sample'. You can override using the
## `.groups` argument.
Plot_Profiles_SOM_clusters_prep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.19,
phos_mat = pY_mat_normtomedian)
Plot_Profiles_SOM_clusters_prep_sorted_by_prep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.19,
phos_mat = pY_mat_normtomedian)
Get_Mat_With_Assigned_Clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.19,
phos_mat = pY_mat_normtomedian) %>%
group_by(sample, type, replicate, cluster) %>%
summarise("Mean of cluster" = mean(log2FC)) %>%
ungroup() %>%
mutate(type = as.factor(type)) %>%
mutate(type = factor(type, levels = c("WT", "G34R", "K27M"))) %>%
ggplot(aes( type, `Mean of cluster`, fill = type )) +
geom_boxplot(outlier.size = 0) +
theme_bw() +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank()) +
scale_fill_manual(values = PGPalette[c(5,1,2)]) +
ggbeeswarm::geom_beeswarm() +
ggpubr::stat_compare_means(method = "t.test",
comparisons = list(c("WT", "G34R"),
c("WT", "K27M"),
c("K27M", "G34R")) ) +
facet_wrap(~cluster, ncol = 5)
som.cluster.k.20.asignedclusters <- Asign_To_Clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.10)
pY_mat_normtomedian_t <- as.data.frame( t(pY_mat_normtomedian) )
pY_mat_normtomedian_t$cluster <- som.cluster.k.20.asignedclusters[rownames(pY_mat_normtomedian_t)]
pY_mat_normtomedian_t <- pY_mat_normtomedian_t %>%
rownames_to_column( "peptide") %>%
pivot_longer(-c(peptide, cluster), names_to = "sample", values_to = "log2FC") %>%
mutate(sample = gsub( "log2FC_", "", sample)) %>%
separate(sample, into = c("type", "replicate"), sep = "-",remove = F) %>%
separate(peptide, into = c("HGNC_Symbol", "Annotated_Sequence"), sep = "_", remove = F ) %>%
mutate(type = as.factor(type)) %>%
mutate(type = factor(type, levels = c("WT", "G34R", "K27M")))
pY_mat_normtomedian_t %>%
group_by(sample, type, replicate, cluster) %>%
summarise("Mean of cluster" = mean(log2FC)) %>%
ungroup() %>%
ggplot(aes( cluster, `Mean of cluster`, fill = type, group = cluster )) +
geom_boxplot(outlier.size = 0) +
theme_bw() +
theme(axis.text.x = element_text(angle = 90),
axis.title.x = element_blank()) +
scale_fill_manual(values = PGPalette[c(5,1,2)]) +
ggbeeswarm::geom_beeswarm() +
geom_hline(yintercept = 0) +
facet_grid(type~.)
k10cl_pY <- Asign_To_Clusters(som.model.pept.pY, cluster.tries.pept.pY$som.cluster.k.10)
# PLSDA pY comp1
k10cl_pY[which(grepl("SIRPA", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("NCK1", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("CTTN", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("MAPK12", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("PTK2", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("GAB2", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("KIRREL1", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("BCAR1", names(k10cl_pY) )) ]
# PLSDA pY comp2
k10cl_pY[which(grepl("CTNNA1", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("VIM", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("PSMA2", names(k10cl_pY) )) ]
k10cl_pY[which(grepl("SRSF9", names(k10cl_pY) )) ]
Plot_Profiles_SOM_clusters(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.29,
phos_mat = pY_mat_normtomedian)
## `summarise()` has grouped output by 'sample'. You can override using the
## `.groups` argument.
Plot_Profiles_SOM_clusters_prep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.29,
phos_mat = pY_mat_normtomedian)
Plot_Profiles_SOM_clusters_prep_sorted_by_prep(som.model = som.model.pept.pY,
clusters = cluster.tries.pept.pY$som.cluster.k.29,
phos_mat = pY_mat_normtomedian)
som.pat <- Train_SOM(phos_mat= pY_mat_normtomedian, try.k = 2:15)
som.model.pat <- som.pat[[1]]
som.events.pat <- som.pat[[2]]
## Having selected a reasonable value for k, evaluate different clustering algorithms.
## Define a function for make a simple plot of clustering output.
## This is the same as previousl plotting, but we define the function
## here as we wanted to play with the color earlier.
## Try several different clustering algorithms, and, if desired, different values for k
cluster.tries.pat.pY <- list()
for(k in c(5,6,7)){
message(paste(k, "clusters"))
## k-means clustering
som.cluster.k <- kmeans(som.events.pat, centers = k, iter.max = 100, nstart = 10)$cluster # k-means
## hierarchical clustering
som.dist.pat <- dist(som.events.pat) # hierarchical, step 1
som.cluster.h <- cutree(hclust(som.dist.pat), k = k) # hierarchical, step 2
## capture outputs
cluster.tries.pat.pY[[paste0('som.cluster.k.', k)]] <- som.cluster.k
cluster.tries.pat.pY[[paste0('som.cluster.h.', k)]] <- som.cluster.h
}
## 5 clusters
## 6 clusters
## 7 clusters
## Take a look at the various clusters. You're looking for the algorithm that produces the
## least fragmented clusters.
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.7)
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_ctrl_5d_6_Set1
## 3 1
## log2FC_Xenograft_E_24h_4_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 5 4
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_ctrl_5d_2_Set1
## 3 5
## log2FC_Xenograft_E_24h_3_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 3 1
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_EC_24h_2_Set1
## 3 1
## log2FC_Xenograft_E_24h_2_Set1 log2FC_Xenograft_ctrl_5d_7_Set1
## 2 2
## log2FC_Xenograft_EC_24h_3_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 1 2
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 2 3
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EBC_5d_1_Set2
## 5 4
## log2FC_Xenograft_EBC_5d_3_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 4 1
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_1_Set2
## 5 2
## log2FC_Xenograft_ctrl_5d_1_Set2 log2FC_Xenograft_E_5d_4_Set2
## 2 1
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_E_5d_3_Set2
## 1 4
## log2FC_Xenograft_ctrl_5d_6_Set2 log2FC_Xenograft_ctrl_5d_2_Set2
## 1 5
## log2FC_Xenograft_EC_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 3 1
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_EBC_5d_4_Set3
## 3 1
## log2FC_Xenograft_ctrl_5d_5_Set3 log2FC_Xenograft_EBC_5d_5_Set3
## 2 4
## log2FC_Xenograft_E_24h_5_Set3 log2FC_Xenograft_EC_5d_5_Set3
## 1 1
## log2FC_Xenograft_EBC_24h_4_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 1 2
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 1 1
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 3 3
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 2 3
## log2FC_Xenograft_EBC_24h_5_Set3
## 1
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_ctrl_5d_6_Set1
## 3 1
## log2FC_Xenograft_E_24h_4_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 6 4
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_ctrl_5d_2_Set1
## 3 6
## log2FC_Xenograft_E_24h_3_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 3 1
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_EC_24h_2_Set1
## 3 1
## log2FC_Xenograft_E_24h_2_Set1 log2FC_Xenograft_ctrl_5d_7_Set1
## 2 2
## log2FC_Xenograft_EC_24h_3_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 1 2
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 2 3
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EBC_5d_1_Set2
## 5 4
## log2FC_Xenograft_EBC_5d_3_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 4 1
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_1_Set2
## 6 2
## log2FC_Xenograft_ctrl_5d_1_Set2 log2FC_Xenograft_E_5d_4_Set2
## 2 1
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_E_5d_3_Set2
## 1 4
## log2FC_Xenograft_ctrl_5d_6_Set2 log2FC_Xenograft_ctrl_5d_2_Set2
## 1 6
## log2FC_Xenograft_EC_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 3 1
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_EBC_5d_4_Set3
## 3 1
## log2FC_Xenograft_ctrl_5d_5_Set3 log2FC_Xenograft_EBC_5d_5_Set3
## 2 4
## log2FC_Xenograft_E_24h_5_Set3 log2FC_Xenograft_EC_5d_5_Set3
## 1 1
## log2FC_Xenograft_EBC_24h_4_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 1 2
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 1 1
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 3 3
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 2 3
## log2FC_Xenograft_EBC_24h_5_Set3
## 1
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.7)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_ctrl_5d_6_Set1
## 3 7
## log2FC_Xenograft_E_24h_4_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 6 4
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_ctrl_5d_2_Set1
## 3 6
## log2FC_Xenograft_E_24h_3_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 3 1
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_EC_24h_2_Set1
## 3 1
## log2FC_Xenograft_E_24h_2_Set1 log2FC_Xenograft_ctrl_5d_7_Set1
## 2 2
## log2FC_Xenograft_EC_24h_3_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 7 2
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 2 3
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EBC_5d_1_Set2
## 5 4
## log2FC_Xenograft_EBC_5d_3_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 4 7
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_1_Set2
## 6 2
## log2FC_Xenograft_ctrl_5d_1_Set2 log2FC_Xenograft_E_5d_4_Set2
## 2 1
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_E_5d_3_Set2
## 7 4
## log2FC_Xenograft_ctrl_5d_6_Set2 log2FC_Xenograft_ctrl_5d_2_Set2
## 7 6
## log2FC_Xenograft_EC_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 3 1
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_EBC_5d_4_Set3
## 3 7
## log2FC_Xenograft_ctrl_5d_5_Set3 log2FC_Xenograft_EBC_5d_5_Set3
## 2 4
## log2FC_Xenograft_E_24h_5_Set3 log2FC_Xenograft_EC_5d_5_Set3
## 1 1
## log2FC_Xenograft_EBC_24h_4_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 7 2
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 7 1
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 3 3
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 2 3
## log2FC_Xenograft_EBC_24h_5_Set3
## 7
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.5)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
## ctrl 4 7 0 0 2
## E 3 2 5 1 1
## EBC 4 0 2 3 1
## EC 5 0 3 1 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.6)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
## ctrl 4 7 0 0 0 2
## E 3 2 5 1 0 1
## EBC 4 0 2 3 1 0
## EC 5 0 3 1 0 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.7)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6 7
## ctrl 0 7 0 0 0 2 4
## E 3 2 5 1 0 1 0
## EBC 1 0 2 3 1 0 3
## EC 3 0 3 1 0 1 2
Confusion_Matrix_Prep(cluster.tries.pat.pY$som.cluster.h.5)
## prep
## Asign_To_Clusters(som.model.pat, cluster) prep1 prep2
## 1 0 16
## 2 9 0
## 3 10 0
## 4 5 0
## 5 0 5
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5, cl=7)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6, cl=7)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.7, cl=7)
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_ctrl_5d_6_Set1
## 4 3
## log2FC_Xenograft_E_24h_4_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 1 2
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_ctrl_5d_2_Set1
## 4 1
## log2FC_Xenograft_E_24h_3_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 4 3
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_EC_24h_2_Set1
## 4 3
## log2FC_Xenograft_E_24h_2_Set1 log2FC_Xenograft_ctrl_5d_7_Set1
## 5 5
## log2FC_Xenograft_EC_24h_3_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 3 5
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 5 4
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EBC_5d_1_Set2
## 1 2
## log2FC_Xenograft_EBC_5d_3_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 2 3
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_1_Set2
## 1 5
## log2FC_Xenograft_ctrl_5d_1_Set2 log2FC_Xenograft_E_5d_4_Set2
## 5 3
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_E_5d_3_Set2
## 3 2
## log2FC_Xenograft_ctrl_5d_6_Set2 log2FC_Xenograft_ctrl_5d_2_Set2
## 3 1
## log2FC_Xenograft_EC_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 4 3
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_EBC_5d_4_Set3
## 4 3
## log2FC_Xenograft_ctrl_5d_5_Set3 log2FC_Xenograft_EBC_5d_5_Set3
## 5 2
## log2FC_Xenograft_E_24h_5_Set3 log2FC_Xenograft_EC_5d_5_Set3
## 3 3
## log2FC_Xenograft_EBC_24h_4_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 3 5
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 3 3
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 4 4
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 5 4
## log2FC_Xenograft_EBC_24h_5_Set3
## 3
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_ctrl_5d_6_Set1
## 1 2
## log2FC_Xenograft_E_24h_4_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 2 4
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_ctrl_5d_2_Set1
## 1 2
## log2FC_Xenograft_E_24h_3_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 1 3
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_EC_24h_2_Set1
## 1 3
## log2FC_Xenograft_E_24h_2_Set1 log2FC_Xenograft_ctrl_5d_7_Set1
## 5 5
## log2FC_Xenograft_EC_24h_3_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 3 5
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 5 1
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EBC_5d_1_Set2
## 6 4
## log2FC_Xenograft_EBC_5d_3_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 4 2
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_1_Set2
## 2 5
## log2FC_Xenograft_ctrl_5d_1_Set2 log2FC_Xenograft_E_5d_4_Set2
## 5 3
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_E_5d_3_Set2
## 3 4
## log2FC_Xenograft_ctrl_5d_6_Set2 log2FC_Xenograft_ctrl_5d_2_Set2
## 2 2
## log2FC_Xenograft_EC_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 1 3
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_EBC_5d_4_Set3
## 1 2
## log2FC_Xenograft_ctrl_5d_5_Set3 log2FC_Xenograft_EBC_5d_5_Set3
## 5 4
## log2FC_Xenograft_E_24h_5_Set3 log2FC_Xenograft_EC_5d_5_Set3
## 3 3
## log2FC_Xenograft_EBC_24h_4_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 3 5
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 3 3
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 1 1
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 5 1
## log2FC_Xenograft_EBC_24h_5_Set3
## 3
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.7)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_ctrl_5d_6_Set1
## 3 4
## log2FC_Xenograft_E_24h_4_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 5 1
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_ctrl_5d_2_Set1
## 3 5
## log2FC_Xenograft_E_24h_3_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 3 6
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_EC_24h_2_Set1
## 3 6
## log2FC_Xenograft_E_24h_2_Set1 log2FC_Xenograft_ctrl_5d_7_Set1
## 7 7
## log2FC_Xenograft_EC_24h_3_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 4 7
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 7 3
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EBC_5d_1_Set2
## 2 1
## log2FC_Xenograft_EBC_5d_3_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 1 4
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_1_Set2
## 5 7
## log2FC_Xenograft_ctrl_5d_1_Set2 log2FC_Xenograft_E_5d_4_Set2
## 7 6
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_E_5d_3_Set2
## 4 1
## log2FC_Xenograft_ctrl_5d_6_Set2 log2FC_Xenograft_ctrl_5d_2_Set2
## 4 5
## log2FC_Xenograft_EC_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 3 6
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_EBC_5d_4_Set3
## 3 4
## log2FC_Xenograft_ctrl_5d_5_Set3 log2FC_Xenograft_EBC_5d_5_Set3
## 7 1
## log2FC_Xenograft_E_24h_5_Set3 log2FC_Xenograft_EC_5d_5_Set3
## 6 6
## log2FC_Xenograft_EBC_24h_4_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 4 7
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 4 6
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 3 3
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 7 3
## log2FC_Xenograft_EBC_24h_5_Set3
## 4
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.5)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
## ctrl 2 0 4 0 7
## E 1 1 3 5 2
## EBC 1 3 4 2 0
## EC 1 1 5 3 0
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.6)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
## ctrl 0 4 2 0 7 0
## E 5 1 3 1 2 0
## EBC 2 1 3 3 0 1
## EC 3 2 4 1 0 0
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.7)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6 7
## ctrl 0 0 0 4 2 0 7
## E 1 0 5 0 1 3 2
## EBC 3 1 2 3 0 1 0
## EC 1 0 3 2 1 3 0
som.pat <- Train_SOM(phos_mat= pY_mat_normtomedian[paste0("log2FC_", names(prep_l[prep_l == "prep1"]) ),], try.k = 2:15)
som.model.pat <- som.pat[[1]]
som.events.pat <- som.pat[[2]]
## Having selected a reasonable value for k, evaluate different clustering algorithms.
## Define a function for make a simple plot of clustering output.
## This is the same as previousl plotting, but we define the function
## here as we wanted to play with the color earlier.
## Try several different clustering algorithms, and, if desired, different values for k
cluster.tries.pat.pY <- list()
for(k in c(5,6,4)){
message(paste(k, "clusters"))
## k-means clustering
som.cluster.k <- kmeans(som.events.pat, centers = k, iter.max = 100, nstart = 10)$cluster # k-means
## hierarchical clustering
som.dist.pat <- dist(som.events.pat) # hierarchical, step 1
som.cluster.h <- cutree(hclust(som.dist.pat), k = k) # hierarchical, step 2
## capture outputs
cluster.tries.pat.pY[[paste0('som.cluster.k.', k)]] <- som.cluster.k
cluster.tries.pat.pY[[paste0('som.cluster.h.', k)]] <- som.cluster.h
}
## 5 clusters
## 6 clusters
## 4 clusters
## Take a look at the various clusters. You're looking for the algorithm that produces the
## least fragmented clusters.
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.4)
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 2 1
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_E_24h_3_Set1
## 4 2
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_E_24h_2_Set1
## 2 5
## log2FC_Xenograft_ctrl_5d_7_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 5 5
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 5 2
## log2FC_Xenograft_EBC_5d_1_Set2 log2FC_Xenograft_EBC_5d_3_Set2
## 3 3
## log2FC_Xenograft_E_5d_1_Set2 log2FC_Xenograft_ctrl_5d_1_Set2
## 5 5
## log2FC_Xenograft_E_5d_3_Set2 log2FC_Xenograft_EC_5d_2_Set2
## 3 2
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_ctrl_5d_5_Set3
## 1 5
## log2FC_Xenograft_EBC_5d_5_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 3 5
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 2 2
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 5 2
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 2 1
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_E_24h_3_Set1
## 4 2
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_E_24h_2_Set1
## 2 5
## log2FC_Xenograft_ctrl_5d_7_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 6 6
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 6 2
## log2FC_Xenograft_EBC_5d_1_Set2 log2FC_Xenograft_EBC_5d_3_Set2
## 3 3
## log2FC_Xenograft_E_5d_1_Set2 log2FC_Xenograft_ctrl_5d_1_Set2
## 6 6
## log2FC_Xenograft_E_5d_3_Set2 log2FC_Xenograft_EC_5d_2_Set2
## 3 2
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_ctrl_5d_5_Set3
## 1 6
## log2FC_Xenograft_EBC_5d_5_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 3 6
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 2 2
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 6 2
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.4)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 2 1
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_E_24h_3_Set1
## 1 2
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_E_24h_2_Set1
## 2 4
## log2FC_Xenograft_ctrl_5d_7_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 4 4
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 4 2
## log2FC_Xenograft_EBC_5d_1_Set2 log2FC_Xenograft_EBC_5d_3_Set2
## 3 3
## log2FC_Xenograft_E_5d_1_Set2 log2FC_Xenograft_ctrl_5d_1_Set2
## 4 4
## log2FC_Xenograft_E_5d_3_Set2 log2FC_Xenograft_EC_5d_2_Set2
## 3 2
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_ctrl_5d_5_Set3
## 1 4
## log2FC_Xenograft_EBC_5d_5_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 3 4
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 2 2
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 4 2
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.5)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
## ctrl 0 0 0 0 7
## E 0 5 1 0 2
## EBC 0 1 3 1 0
## EC 2 2 0 0 0
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.6)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
## ctrl 0 0 0 0 0 7
## E 0 5 1 0 1 1
## EBC 0 1 3 1 0 0
## EC 2 2 0 0 0 0
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.4)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4
## ctrl 0 0 0 7
## E 0 5 1 2
## EBC 1 1 3 0
## EC 2 2 0 0
Confusion_Matrix_Prep(cluster.tries.pat.pY$som.cluster.h.5)
## prep
## Asign_To_Clusters(som.model.pat, cluster) prep1
## 1 2
## 2 8
## 3 4
## 4 1
## 5 9
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5, cl=7)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6, cl=7)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.4, cl=7)
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 5 2
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_E_24h_3_Set1
## 3 3
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_E_24h_2_Set1
## 5 4
## log2FC_Xenograft_ctrl_5d_7_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 4 4
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 4 5
## log2FC_Xenograft_EBC_5d_1_Set2 log2FC_Xenograft_EBC_5d_3_Set2
## 1 1
## log2FC_Xenograft_E_5d_1_Set2 log2FC_Xenograft_ctrl_5d_1_Set2
## 4 4
## log2FC_Xenograft_E_5d_3_Set2 log2FC_Xenograft_EC_5d_2_Set2
## 1 5
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_ctrl_5d_5_Set3
## 2 4
## log2FC_Xenograft_EBC_5d_5_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 1 4
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 5 3
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 4 3
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 2 5
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_E_24h_3_Set1
## 6 6
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_E_24h_2_Set1
## 2 3
## log2FC_Xenograft_ctrl_5d_7_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 4 4
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 4 2
## log2FC_Xenograft_EBC_5d_1_Set2 log2FC_Xenograft_EBC_5d_3_Set2
## 1 1
## log2FC_Xenograft_E_5d_1_Set2 log2FC_Xenograft_ctrl_5d_1_Set2
## 4 4
## log2FC_Xenograft_E_5d_3_Set2 log2FC_Xenograft_EC_5d_2_Set2
## 1 2
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_ctrl_5d_5_Set3
## 5 4
## log2FC_Xenograft_EBC_5d_5_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 1 4
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 2 6
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 4 6
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.4)
## log2FC_Xenograft_EBC_24h_1_Set1 log2FC_Xenograft_EC_24h_1_Set1
## 3 2
## log2FC_Xenograft_EBC_24h_2_Set1 log2FC_Xenograft_E_24h_3_Set1
## 2 3
## log2FC_Xenograft_E_24h_1_Set1 log2FC_Xenograft_E_24h_2_Set1
## 3 4
## log2FC_Xenograft_ctrl_5d_7_Set1 log2FC_Xenograft_ctrl_5d_5_Set1
## 4 4
## log2FC_Xenograft_ctrl_5d_1_Set1 log2FC_Xenograft_E_24h_1_Set2
## 4 3
## log2FC_Xenograft_EBC_5d_1_Set2 log2FC_Xenograft_EBC_5d_3_Set2
## 1 1
## log2FC_Xenograft_E_5d_1_Set2 log2FC_Xenograft_ctrl_5d_1_Set2
## 4 4
## log2FC_Xenograft_E_5d_3_Set2 log2FC_Xenograft_EC_5d_2_Set2
## 1 3
## log2FC_Xenograft_EC_5d_4_Set3 log2FC_Xenograft_ctrl_5d_5_Set3
## 3 4
## log2FC_Xenograft_EBC_5d_5_Set3 log2FC_Xenograft_ctrl_5d_7_Set3
## 1 4
## log2FC_Xenograft_E_24h_1_Set3 log2FC_Xenograft_E_5d_5_Set3
## 3 3
## log2FC_Xenograft_ctrl_5d_1_Set3 log2FC_Xenograft_EC_24h_5_Set3
## 4 3
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.5)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
## ctrl 0 0 0 7 0
## E 1 0 2 2 3
## EBC 3 0 1 0 1
## EC 0 2 1 0 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.6)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
## ctrl 0 0 0 7 0 0
## E 1 3 1 1 0 2
## EBC 3 1 0 0 0 1
## EC 0 1 0 0 2 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.4)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4
## ctrl 0 0 0 7
## E 1 0 5 2
## EBC 3 1 1 0
## EC 0 1 3 0
som.pat <- Train_SOM(phos_mat= pY_mat_normtomedian[paste0("log2FC_", names(prep_l[prep_l == "prep2"]) ),], try.k = 2:15)
som.model.pat <- som.pat[[1]]
som.events.pat <- som.pat[[2]]
## Having selected a reasonable value for k, evaluate different clustering algorithms.
## Define a function for make a simple plot of clustering output.
## This is the same as previousl plotting, but we define the function
## here as we wanted to play with the color earlier.
## Try several different clustering algorithms, and, if desired, different values for k
cluster.tries.pat.pY <- list()
for(k in c(5,6,4)){
message(paste(k, "clusters"))
## k-means clustering
som.cluster.k <- kmeans(som.events.pat, centers = k, iter.max = 100, nstart = 10)$cluster # k-means
## hierarchical clustering
som.dist.pat <- dist(som.events.pat) # hierarchical, step 1
som.cluster.h <- cutree(hclust(som.dist.pat), k = k) # hierarchical, step 2
## capture outputs
cluster.tries.pat.pY[[paste0('som.cluster.k.', k)]] <- som.cluster.k
cluster.tries.pat.pY[[paste0('som.cluster.h.', k)]] <- som.cluster.h
}
## 5 clusters
## 6 clusters
## 4 clusters
## Take a look at the various clusters. You're looking for the algorithm that produces the
## least fragmented clusters.
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.h.4)
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.5)
## log2FC_Xenograft_ctrl_5d_6_Set1 log2FC_Xenograft_E_24h_4_Set1
## 1 5
## log2FC_Xenograft_ctrl_5d_2_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 1 1
## log2FC_Xenograft_EC_24h_2_Set1 log2FC_Xenograft_EC_24h_3_Set1
## 4 1
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 5 2
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_4_Set2
## 5 3
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_ctrl_5d_6_Set2
## 4 1
## log2FC_Xenograft_ctrl_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 1 3
## log2FC_Xenograft_EBC_5d_4_Set3 log2FC_Xenograft_E_24h_5_Set3
## 2 3
## log2FC_Xenograft_EC_5d_5_Set3 log2FC_Xenograft_EBC_24h_4_Set3
## 4 4
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 4 3
## log2FC_Xenograft_EBC_24h_5_Set3
## 4
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.6)
## log2FC_Xenograft_ctrl_5d_6_Set1 log2FC_Xenograft_E_24h_4_Set1
## 1 6
## log2FC_Xenograft_ctrl_5d_2_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 1 1
## log2FC_Xenograft_EC_24h_2_Set1 log2FC_Xenograft_EC_24h_3_Set1
## 5 1
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 6 2
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_4_Set2
## 6 3
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_ctrl_5d_6_Set2
## 4 1
## log2FC_Xenograft_ctrl_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 1 3
## log2FC_Xenograft_EBC_5d_4_Set3 log2FC_Xenograft_E_24h_5_Set3
## 2 3
## log2FC_Xenograft_EC_5d_5_Set3 log2FC_Xenograft_EBC_24h_4_Set3
## 5 5
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 4 3
## log2FC_Xenograft_EBC_24h_5_Set3
## 5
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.h.4)
## log2FC_Xenograft_ctrl_5d_6_Set1 log2FC_Xenograft_E_24h_4_Set1
## 1 4
## log2FC_Xenograft_ctrl_5d_2_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 1 1
## log2FC_Xenograft_EC_24h_2_Set1 log2FC_Xenograft_EC_24h_3_Set1
## 3 1
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 4 1
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_4_Set2
## 4 2
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_ctrl_5d_6_Set2
## 3 1
## log2FC_Xenograft_ctrl_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 1 2
## log2FC_Xenograft_EBC_5d_4_Set3 log2FC_Xenograft_E_24h_5_Set3
## 1 2
## log2FC_Xenograft_EC_5d_5_Set3 log2FC_Xenograft_EBC_24h_4_Set3
## 3 3
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 3 2
## log2FC_Xenograft_EBC_24h_5_Set3
## 3
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.5)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
## ctrl 4 0 0 2 0
## E 0 0 3 0 1
## EBC 1 1 0 2 1
## EC 1 1 1 2 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.6)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
## ctrl 4 0 0 2 0 0
## E 0 0 3 0 0 1
## EBC 1 1 0 0 2 1
## EC 1 1 1 0 2 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.h.4)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4
## ctrl 4 0 2 0
## E 0 3 0 1
## EBC 2 0 2 1
## EC 2 1 2 1
Confusion_Matrix_Prep(cluster.tries.pat.pY$som.cluster.h.5)
## prep
## Asign_To_Clusters(som.model.pat, cluster) prep2
## 1 6
## 2 2
## 3 4
## 4 6
## 5 3
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5, cl=7)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6, cl=7)
Plot_Colored_SOM(som.model.pat, cluster.tries.pat.pY$som.cluster.k.4, cl=7)
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.5)
## log2FC_Xenograft_ctrl_5d_6_Set1 log2FC_Xenograft_E_24h_4_Set1
## 3 5
## log2FC_Xenograft_ctrl_5d_2_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 1 1
## log2FC_Xenograft_EC_24h_2_Set1 log2FC_Xenograft_EC_24h_3_Set1
## 4 1
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 5 3
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_4_Set2
## 5 2
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_ctrl_5d_6_Set2
## 3 3
## log2FC_Xenograft_ctrl_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 1 2
## log2FC_Xenograft_EBC_5d_4_Set3 log2FC_Xenograft_E_24h_5_Set3
## 3 2
## log2FC_Xenograft_EC_5d_5_Set3 log2FC_Xenograft_EBC_24h_4_Set3
## 4 4
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 3 2
## log2FC_Xenograft_EBC_24h_5_Set3
## 4
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.6)
## log2FC_Xenograft_ctrl_5d_6_Set1 log2FC_Xenograft_E_24h_4_Set1
## 6 4
## log2FC_Xenograft_ctrl_5d_2_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 5 5
## log2FC_Xenograft_EC_24h_2_Set1 log2FC_Xenograft_EC_24h_3_Set1
## 1 5
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 4 6
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_4_Set2
## 4 2
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_ctrl_5d_6_Set2
## 3 6
## log2FC_Xenograft_ctrl_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 5 2
## log2FC_Xenograft_EBC_5d_4_Set3 log2FC_Xenograft_E_24h_5_Set3
## 6 2
## log2FC_Xenograft_EC_5d_5_Set3 log2FC_Xenograft_EBC_24h_4_Set3
## 1 1
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 3 2
## log2FC_Xenograft_EBC_24h_5_Set3
## 1
Asign_To_Clusters(som.model.pat, cluster.tries.pat.pY$som.cluster.k.4)
## log2FC_Xenograft_ctrl_5d_6_Set1 log2FC_Xenograft_E_24h_4_Set1
## 3 2
## log2FC_Xenograft_ctrl_5d_2_Set1 log2FC_Xenograft_EBC_24h_3_Set1
## 4 4
## log2FC_Xenograft_EC_24h_2_Set1 log2FC_Xenograft_EC_24h_3_Set1
## 4 4
## log2FC_Xenograft_EBC_5d_2_Set2 log2FC_Xenograft_EC_5d_1_Set2
## 2 3
## log2FC_Xenograft_EC_5d_3_Set2 log2FC_Xenograft_E_5d_4_Set2
## 2 1
## log2FC_Xenograft_ctrl_5d_4_Set2 log2FC_Xenograft_ctrl_5d_6_Set2
## 3 3
## log2FC_Xenograft_ctrl_5d_2_Set2 log2FC_Xenograft_E_5d_2_Set2
## 4 1
## log2FC_Xenograft_EBC_5d_4_Set3 log2FC_Xenograft_E_24h_5_Set3
## 3 1
## log2FC_Xenograft_EC_5d_5_Set3 log2FC_Xenograft_EBC_24h_4_Set3
## 1 4
## log2FC_Xenograft_ctrl_5d_4_Set3 log2FC_Xenograft_EC_24h_4_Set3
## 3 1
## log2FC_Xenograft_EBC_24h_5_Set3
## 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.5)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5
## ctrl 2 0 4 0 0
## E 0 3 0 0 1
## EBC 1 0 1 2 1
## EC 1 1 1 2 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.6)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4 5 6
## ctrl 0 0 2 0 2 2
## E 0 3 0 1 0 0
## EBC 2 0 0 1 1 1
## EC 2 1 0 1 1 1
Confusion_Matrix(cluster.tries.pat.pY$som.cluster.k.4)
## Asign_To_Clusters(som.model.pat, cluster)
## treatment 1 2 3 4
## ctrl 0 0 4 2
## E 3 1 0 0
## EBC 1 1 1 2
## EC 2 1 1 2
sessionInfo()
## R version 4.1.3 (2022-03-10)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur/Monterey 10.16
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] forcats_0.5.2 stringr_1.4.1
## [3] dplyr_1.0.10 purrr_0.3.5
## [5] readr_2.1.3 tidyr_1.2.1
## [7] tibble_3.1.8 ggplot2_3.3.6
## [9] tidyverse_1.3.2 kohonen_3.0.11
## [11] mdatools_0.13.0 SummarizedExperiment_1.24.0
## [13] GenomicRanges_1.46.1 GenomeInfoDb_1.30.1
## [15] MatrixGenerics_1.6.0 matrixStats_0.62.0
## [17] DEP_1.16.0 org.Hs.eg.db_3.14.0
## [19] AnnotationDbi_1.56.2 IRanges_2.28.0
## [21] S4Vectors_0.32.4 Biobase_2.54.0
## [23] BiocGenerics_0.40.0 fgsea_1.20.0
##
## loaded via a namespace (and not attached):
## [1] utf8_1.2.2 shinydashboard_0.7.2 proto_1.0.0
## [4] gmm_1.7 tidyselect_1.2.0 RSQLite_2.2.18
## [7] htmlwidgets_1.5.4 grid_4.1.3 BiocParallel_1.28.3
## [10] norm_1.0-10.0 munsell_0.5.0 codetools_0.2-18
## [13] preprocessCore_1.56.0 chron_2.3-58 DT_0.26
## [16] withr_2.5.0 colorspace_2.0-3 highr_0.9
## [19] knitr_1.40 rstudioapi_0.14 ggsignif_0.6.4
## [22] mzID_1.32.0 labeling_0.4.2 GenomeInfoDbData_1.2.7
## [25] farver_2.1.1 bit64_4.0.5 vctrs_0.5.0
## [28] generics_0.1.3 xfun_0.34 R6_2.5.1
## [31] doParallel_1.0.17 ggbeeswarm_0.6.0 clue_0.3-62
## [34] MsCoreUtils_1.6.2 bitops_1.0-7 cachem_1.0.6
## [37] DelayedArray_0.20.0 assertthat_0.2.1 promises_1.2.0.1
## [40] scales_1.2.1 googlesheets4_1.0.1 beeswarm_0.4.0
## [43] gtable_0.3.1 affy_1.72.0 sandwich_3.0-2
## [46] rlang_1.0.6 mzR_2.28.0 GlobalOptions_0.1.2
## [49] splines_4.1.3 rstatix_0.7.0 gargle_1.2.1
## [52] impute_1.68.0 broom_1.0.1 abind_1.4-5
## [55] BiocManager_1.30.19 yaml_2.3.6 modelr_0.1.9
## [58] backports_1.4.1 httpuv_1.6.6 tools_4.1.3
## [61] affyio_1.64.0 ellipsis_0.3.2 gplots_3.1.3
## [64] jquerylib_0.1.4 RColorBrewer_1.1-3 STRINGdb_2.6.5
## [67] MSnbase_2.20.4 gsubfn_0.7 Rcpp_1.0.9
## [70] hash_2.2.6.2 plyr_1.8.7 zlibbioc_1.40.0
## [73] RCurl_1.98-1.9 ggpubr_0.4.0 sqldf_0.4-11
## [76] GetoptLong_1.0.5 zoo_1.8-11 haven_2.5.1
## [79] cluster_2.1.4 fs_1.5.2 magrittr_2.0.3
## [82] data.table_1.14.4 circlize_0.4.15 reprex_2.0.2
## [85] googledrive_2.0.0 pcaMethods_1.86.0 mvtnorm_1.1-3
## [88] ProtGenerics_1.26.0 hms_1.1.2 mime_0.12
## [91] evaluate_0.17 xtable_1.8-4 XML_3.99-0.12
## [94] readxl_1.4.1 gridExtra_2.3 shape_1.4.6
## [97] compiler_4.1.3 KernSmooth_2.23-20 ncdf4_1.19
## [100] crayon_1.5.2 htmltools_0.5.3 mgcv_1.8-41
## [103] later_1.3.0 tzdb_0.3.0 lubridate_1.8.0
## [106] DBI_1.1.3 dbplyr_2.2.1 ComplexHeatmap_2.10.0
## [109] MASS_7.3-58.1 tmvtnorm_1.5 car_3.1-1
## [112] Matrix_1.5-1 permute_0.9-7 cli_3.4.1
## [115] vsn_3.62.0 imputeLCMD_2.1 parallel_4.1.3
## [118] igraph_1.3.5 pkgconfig_2.0.3 MALDIquant_1.21
## [121] xml2_1.3.3 foreach_1.5.2 vipor_0.4.5
## [124] bslib_0.4.0 XVector_0.34.0 rvest_1.0.3
## [127] digest_0.6.30 vegan_2.6-4 Biostrings_2.62.0
## [130] rmarkdown_2.17 cellranger_1.1.0 fastmatch_1.1-3
## [133] shiny_1.7.3 gtools_3.9.3 rjson_0.2.21
## [136] lifecycle_1.0.3 nlme_3.1-160 jsonlite_1.8.3
## [139] carData_3.0-5 limma_3.50.3 fansi_1.0.3
## [142] pillar_1.8.1 lattice_0.20-45 KEGGREST_1.34.0
## [145] fastmap_1.1.0 httr_1.4.4 plotrix_3.8-2
## [148] glue_1.6.2 png_0.1-7 iterators_1.0.14
## [151] bit_4.0.4 stringi_1.7.8 sass_0.4.2
## [154] blob_1.2.3 caTools_1.18.2 memoise_2.0.1
knitr::knit_exit()